package sort.yht;

import sort.util.Constants;
import sort.util.MySort;

/**
 * 功能描述：计数排序，简单版桶排序
 * @Author: yht
 * @Date: 2021/8/11 14:13
 */
public class JiShu implements MySort {

  @Override
  public String getName() {
    return "【计数排序】";
  }

  @Override
  public int[] sort(int[] a) {
    //先找到最小值和最大值，此处省略
    int [] tongs = new int[Constants.MAX_DATA_VALUE + 10];
    for(int key : a)
      tongs[key]++;
    int j = 0, tmp;
    for(int i = 0; i < tongs.length ; i++) {
      tmp = tongs[i];
      while (tmp-- > 0)
        a[j++] = i;
    }
    return a;
  }

  public static void main(String[] args) {
    new JiShu().testAll();
  }
}
